{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>This notebook is a demonstration of two types of feature engineering methods:<br><br>\n",
      "<ul>\n",
      "    <li>Creating non-linear transformations of individual features</li>\n",
      "    <li>Transforming continuous or discrete features in binary bins - aka \"binning\"</li>\n",
      "</ul><br><br>\n",
      "\n",
      "The first thing we do is write a few functions that make transformations.\n",
      "</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "'''\n",
      "Binning vs transformation\n",
      "'''\n",
      "\n",
      "from sklearn import linear_model\n",
      "import math\n",
      "import pandas as pd\n",
      "import matplotlib.pyplot as plt\n",
      "\n",
      "def genY(x, err, betas):\n",
      "    '''\n",
      "    Goal: generate a Y variable as Y=XB+e \n",
      "    Input\n",
      "    1. an np array x of length n\n",
      "    2. a random noise vector r of length n\n",
      "    3. a (d+1) x 1 vector of coefficients b - each represents ith degree of x\n",
      "    '''\n",
      "    d = pd.DataFrame(x, columns=['x'])    \n",
      "    y = err\n",
      "    for i,b in enumerate(betas):\n",
      "        y = y + b*x**i\n",
      "    d['y'] = y\n",
      "    return d\n",
      "\n",
      "\n",
      "def makePolyFeat(d, deg):\n",
      "    '''\n",
      "    Goal: Generate features up to X**deg\n",
      "    1. a data frame with two features X and Y\n",
      "    4. a degree 'deg' (from which we make polynomial features \n",
      "    \n",
      "    '''\n",
      "    #Generate Polynomial terms\n",
      "    for i in range(2, deg+1):\n",
      "        d['x'+str(i)] = d['x']**i\n",
      "    return d\n",
      "\n",
      "\n",
      "\n",
      "def makeBin(d, bins):\n",
      "    '''\n",
      "    This takes in a dataframe with a feature X and makes evenly spaced bin features\n",
      "    using the pandas get_dummies function\n",
      "    '''\n",
      "    d['g'] = np.floor(bins*(d['x']-d['x'].min())/(d['x'].max()-d['x'].min())).astype(int)\n",
      "    d['g']=-1*(d['g']==bins)+d['g'] #Puts the highest entry into the right bin\n",
      "    #Note that the get_dummies function makes k dummy features if there are k\n",
      "    #discrete values. In modeling you should always use k-1 bins\n",
      "    dummies = pd.get_dummies(d['g'], prefix='bin')\n",
      "    d_m = pd.merge(d, dummies, left_index=True, right_index=True, how='inner')\n",
      "    del d_m['g'] #we don't need this\n",
      "    del d_m['bin_0'] #we don't this either\n",
      "    return d_m\n",
      "    \n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 54
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>Now that we've created the functions, let's generate some data. Again, the goal is to generate an X-Y relationship with noise, but where we know the underlying data generating distribution.\n",
      "</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "betas = [0, 4, -3.5, 1]\n",
      "n=200\n",
      "sig=2.2\n",
      "sp=20\n",
      "\n",
      "x_init = np.random.uniform(0,1,n)\n",
      "e_init = np.random.normal(0, sig, n)\n",
      "\n",
      "dat = genY(x_init, e_init, betas)\n",
      "dat = makePolyFeat(dat, 6)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 48
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>Now we want to see the effect of fitting polynomial curves of different degrees to our noisy data set. Ultimately, we want to illustrate how model specification (and feature engineering) affects the bias-variance tradeoff.\n",
      "\n",
      "\n",
      "</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def PlotLinDeg(X_train, y_train, X_test, y_test, i, t):\n",
      "    '''\n",
      "    This function builds a regression model on the simulated data\n",
      "    1. plots the test data\n",
      "    2. plots the fitted line\n",
      "    3. Shows sum-square error\n",
      "    '''\n",
      "    regr = linear_model.LinearRegression(fit_intercept=True)\n",
      "    regr.fit(X_train, y_train)\n",
      "    y_hat=regr.predict(X_train)\n",
      "    y_hat_test=regr.predict(X_test)\n",
      "    ss_train=((y_train-y_hat)**2).mean()\n",
      "    ss_test=((y_test-y_hat_test)**2).mean()\n",
      "    #Plot train X vs. Predicted Y_train\n",
      "    plt.subplot(2, 3, i)\n",
      "    plot(X_train['x'], y_train, 'b.')\n",
      "    plot(X_train['x'], y_hat, 'r.')\n",
      "    plt.title('{}\\n Train MSE={}'.format(t,round(ss_train,4)))\n",
      "    #Plot test X vs. Predicted Y_test\n",
      "    plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n",
      "    plt.subplot(2,3,i+3)\n",
      "    plot(X_test['x'], y_test, 'b.')\n",
      "    plot(X_test['x'], y_hat_test, 'r.')\n",
      "    plt.title('Test MSE={}'.format(round(ss_test,4)))\n",
      "    plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n",
      "    \n",
      "    \n",
      "def PlotLinBin(X_train, y_train, X_test, y_test, i, t, x, x_t):\n",
      "    '''\n",
      "    This function builds a regression model on the simulated data\n",
      "    1. plots the test data\n",
      "    2. plots the fitted line\n",
      "    3. Shows sum-square error\n",
      "    '''\n",
      "    regr = linear_model.LinearRegression(fit_intercept=True)\n",
      "    regr.fit(X_train, y_train)\n",
      "    y_hat=regr.predict(X_train)\n",
      "    y_hat_test=regr.predict(X_test)\n",
      "    ss_train=((y_train-y_hat)**2).mean()\n",
      "    ss_test=((y_test-y_hat_test)**2).mean()\n",
      "    #Plot train X vs. Predicted Y_train\n",
      "    plt.subplot(2, 3, i)\n",
      "    plot(x, y_train, 'b.')\n",
      "    plot(x, y_hat, 'r.')\n",
      "    plt.title('{}\\n Train MSE={}'.format(t,round(ss_train,4)))\n",
      "    #Plot test X vs. Predicted Y_test\n",
      "    plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n",
      "    plt.subplot(2,3,i+3)\n",
      "    plot(x_t, y_test, 'b.')\n",
      "    plot(x_t, y_hat_test, 'r.')\n",
      "    plt.title('Test MSE={}'.format(round(ss_test,4)))\n",
      "    plt.tick_params(axis='x', which='both', bottom='off', top='off', labelbottom='off')\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 69
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "sp = 20\n",
      "\n",
      "f1=['x']; f3=['x', 'x2', 'x3']; f6=['x', 'x2', 'x3', 'x4', 'x5', 'x6']\n",
      "\n",
      "fig=plt.figure()\n",
      "\n",
      "PlotLin(dat[f1][:sp], dat['y'][:sp], dat[f1][sp:], dat['y'][sp:], 1, 'Degree 1')\n",
      "PlotLin(dat[f3][:sp], dat['y'][:sp], dat[f3][sp:], dat['y'][sp:], 2, 'Degree 3')\n",
      "PlotLin(dat[f6][:sp], dat['y'][:sp], dat[f6][sp:], dat['y'][sp:], 3, 'Degree 6')\n",
      "\n",
      "fig.tight_layout()\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nP/0JkZGRCAkJwciRI3H58uUmPYszae26efLJJxEZGSn+ny9YsMBs2pkzZ+rdz9vbG4GBgTZda//+\n/UhLS0NISAjat2+PcePG6eW1vLwckydPRnh4OMLDwzF//nzrmXdFaPIuXbrQ9u3b7bpGamoq/fvf\n/zZ7/vz586RQKCg+Pp6OHz8uHn/vvfcoLi6OYmJiiIiooqKCgoKCaPXq1dTQ0EC3bt2i7777jo4d\nO0ZERDk5OTR48GC78kpENH78eBo/fjzdvHmT8vLyKCgoiE6cOGEybW5uLoWHh1NBQQGVlZVRamoq\nPf/880bp0tLSaPDgwTRp0iS94xMnTqQJEyZQaWkpNTQ00OHDh8Vzb775Jh05coTq6+vp1KlTFB0d\nTatXr7b7+ZwB66b5url58ybNmzePioqKiIho48aNFBAQQIWFhUREVFJSQr6+vpSbm0tERJs2bSJf\nX1+6fv26+PyJiYl07do1un37NmVlZdHjjz9u9/M5g9aom+PHj9OtW7eIiOiXX36h8PBw2rJli03f\nnTJlCk2fPt3itbQ62bJlC/33v/+lqqoqqqmpoWnTptHw4cP1rjVu3Di6desWFRYWUmxsLOXk5Fi8\nv8srpfr6enr99dcpNjaWQkJCaNy4cXTjxg0iIrp16xZNnDiRQkJCSKVS0X333UclJSX04osvkoeH\nB3l7e5O/vz/96U9/MrqHViQLFiyg5557TjyenJxMCxYsoC5duhAR0cGDB0mlUpnNa05ODg0aNMiu\n562urqY2bdrQmTNnxGNZWVkmKxoiogkTJtBLL70kfv7+++8pIiJCL82qVato3LhxNG/ePHryySfF\n4ydPnqTAwECqqqqyKW+zZs0y+fvJEdaN/brRJSEhgb788ksiItq7dy+1b99e73xYWBjt37+fiIjU\najX99a9/Fc9t3LiR4uLimv5QLqC16caQX375hTp27Eg//fST1bTV1dUUEBBAu3fvbta1fvrpJwoI\nCBA/h4aG0sGDB8XPCxcutFrpunxO6YMPPsA333yD3bt348qVKwgODsYf//hHAMCyZctQWVmJixcv\n4saNG/j444/h4+ODBQsWYPDgwfjnP/+JqqoqvP/++2avP3HiRKxevRpEhIKCAlRXVyMlJUU836NH\nD3h4eGDKlCnIzc1FWVlZk/L/6KOPIjg42ORLuxvm6dOn4enpiW7duonfS0xMxIkTJ0xes6CgQG+7\n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\nPzwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10a356750>"
       ]
      }
     ],
     "prompt_number": 52
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "<p>The above plot is a great illustration of bias-variance tradeoffs. The top row shows an nth-degree model fit to a sparse training set. The bottom row shows this fitted model against the test data (with actuals in blue and predicted in red). We can see multiple things here:<br>\n",
      "<ul>\n",
      "    <li>MSE gets much better on training data as we increase the degree to 6</li>\n",
      "    <li>MSE gets notably worse on test data as we increase the degree from 3 to 6</li>\n",
      "    <li>A linear model is notably biased (has the worst training error), but the error from bias is better than the error induced from overfitting (i.e., the high variance model)</li>\n",
      "</ul><br>\n",
      "\n",
      "Now let's do a similar experiment with the bin features.\n",
      "</p>"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def getBinName(vl, pre):\n",
      "    l=[]\n",
      "    for v in vl:\n",
      "        if (pre in v):\n",
      "            l.append(v)\n",
      "    return l\n",
      "\n",
      "\n",
      "d4 = makeBin(dat,2); g4 = getBinName(d4.columns.values,'bin')\n",
      "PlotLinBin(d4[g4][:sp], d4['y'][:sp], d4[g4][sp:], d4['y'][sp:], 1, 'Bins=10', d4['x'][:sp], d4['x'][sp:])\n",
      "\n",
      "d10=makeBin(dat, 10); g10 = getBinName(d10.columns.values, 'bin')\n",
      "PlotLinBin(d10[g10][:sp], d10['y'][:sp],d10[g10][sp:], d10['y'][sp:], 2, 'Bins=30', d10['x'][:sp], d10['x'][sp:])\n",
      "\n",
      "d50=makeBin(dat, 20); g50=getBinName(d50.columns.values, 'bin')\n",
      "PlotLinBin(d50[g50][:sp], d50['y'][:sp],d50[g50][sp:], d50['y'][sp:], 3, 'Bins=50', d50['x'][:sp], d50['x'][sp:])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEQCAYAAABLMTQcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl4FFW6/7/dSWftJJ09hIYECCQQzAJxIrKFEQYTRhLF\n+IsgAWQS3FDn3hl19Co4o4yOd3Dj3hGuCm4BAZ0BZBlB2QJGZAurBDGBhD3QSQhI1vf3R1Hd1d3V\ne/Wa83mefpKuOrUkn6pTp87yHhkRERgMBoPhU8jdfQIMBoPBkB6WuTMYDIYPwjJ3BoPB8EFY5s5g\nMBg+CMvcGQwGwwdhmTuDwWD4ID0mc3/00UfxyiuvuPs0GBLDvPomzKsEkA+RlJREwcHBpFQqKTIy\nkiZNmkT19fUuP4/29naaMmUKJScnk0wmo23bthmleeaZZyg6Opqio6Pp2Wefdfk5ehOe4vXo0aM0\nfPhwioyMpIiICLrzzjtp586demmYV+vxFK+1tbUkk8lIqVRqP6+88opeGm/06lMld5lMhq+++grX\nrl3D+fPnER8fj7lz57rlXMaMGYNPP/0UCQkJkMlkeusWL16MNWvW4NChQzh06BDWrVuHxYsXu+U8\nvQFP8dq7d2+sWrUKV65cgUajQUlJCe6//37teubVNjzFK09LSwuuXbuGa9eu4YUXXtAu91avPpW5\nCwkMDMSUKVNw7NgxAMDMmTPx4osvAgC2bdsGtVqNhQsXIj4+HomJiVi2bJl22w0bNiA9PR3h4eFQ\nq9X4+9//btOxFQoFnnzySYwcORJ+fn5G6z/66CP84Q9/QGJiIhITE/GHP/xB7/gM07jTa0REBPr1\n6weZTIauri7I5XL06tVLu555tR93euXp7u4WXe6tXn0uc6db0RRu3LiBzz//HCNGjADAlRKEJeiL\nFy+ipaUF586dwwcffIDHH38czc3NAIDZs2djyZIlaGlpwdGjR/HrX/8aAHDmzBlERkaa/KxYscKq\nczx27BgyMzO13zMyMnD06FFJ/n5fxZO8qlQqBAcH429/+xtWrVqlXc682o4neU1KSkKfPn3w8MMP\n48qVK9rl3urV390nICVEhKKiIvj7++P69euIi4vDpk2b9NbzKBQKvPTSS5DL5cjPz4dSqcSJEyfw\nq1/9CgEBATh69Chuu+02REREIDs7GwDQt29faDQah8+ztbUVERER2u/h4eFobW11eL++iqd5bWpq\nwo0bN/Dyyy/jgQcewP79+wEwr7biKV5jY2Oxd+9eZGVlobGxEY8//jimTZumPRdv9epTJXeZTIY1\na9ZAo9Ggra0N7777LsaOHYuLFy8apY2OjoZcrvvzQ0JCtMK++OILbNiwAcnJycjLy0NVVZWk56lU\nKtHS0qL93tzcDKVSKekxfAlP9BoSEoLXXnsNNTU1OHToEADm1VY8xWtoaCiGDRsGuVyOuLg4LFq0\nCF9//TWuX78OwHu9+lTmLkQmk+Hee++Fn58fKisrbdo2JycH//rXv3D58mUUFRXhgQceAMC95oWF\nhZn8LF++3Kr9p6en4+DBg9rv1dXVGDp0qE3n2FPxJK9dXV3o7u5GSEgIAObVETzJKw9fB++tXn0u\nc+df5YgIa9asQVNTE4YMGaL3imeOjo4OfPbZZ2huboafnx/CwsK0jaJ9+/bVtqaLfR588EHtftra\n2nDz5k2j3wGgtLQUCxcuxLlz53D27FksXLgQM2fOlOg/4Jt4gtctW7bg4MGD6OrqQktLC/7jP/4D\nqampSElJAcC82oMneN2zZw9OnDiB7u5uXLlyBU8++STGjRuHsLAwAN7r1afq3AHgnnvugZ+fH2Qy\nGZKTk/HRRx9h8ODBRg00ht0ThXz66aeYO3cuurq6kJaWhs8++8zm80hNTcWZM2cgk8kwceJEyGQy\n1NbWom/fvpgzZw5+/vln3HbbbQCAsrIylJeX2/7H9iA8wWtTUxPmzp2LhoYGKJVK5OXlYe3atdr1\nzKvteILXn3/+Gc8//zwuXbqE8PBw/OY3v9Er1XurVxlZ+4hkMBgMhtfgc9UyDAaDwWCZO4PBYPgk\nLHNnMBgMH4Rl7gwGg+GDeE3mPnToUOzYscPdp8FwMsyzb8A8egDOCjd5+vRpvRCaMpmMQkNDSalU\nUlhYGFVWVjrr0EbIZDKKi4ujzs5O7bL29naKjY0lmUymXXbkyBGaMGECRUVFkUqlouHDh9OGDRuI\niGjr1q1GYUGVSiVVVVXZdC43b96kWbNmUXh4OCUkJNDChQvNpv/ss8+ob9++FBoaSkVFRXT16lXt\nuhkzZlBAQID2XMLCwqi7u5uIiE6cOEGTJ0+m2NhYioqKookTJ9KJEyf0zuPpp5+mxMREioyMpMce\ne4w6Ojps+luImGdTSOn5888/pxEjRlBISAjl5eUZbbt27VpKT08npVJJd955Jx07dsymcyViHk3h\nSo8HDhygYcOGUUhICA0fPpwOHjyot/7UqVM0adIkCgsLo5iYGHrmmWfMnovL4rnLZDI6deqU6Dqh\nRGcdOy0tjdatW6ddtmbNGkpNTSW5XK5d1q9fP/rv//5v6ujooPb2dtq1a5f2ot66dSup1WqHz+W5\n556jMWPGUFNTEx0/fpwSEhJo06ZNommPHDlCYWFhtHPnTmptbaWpU6dSSUmJdv3MmTPpxRdfFN12\nz5499OGHH5JGo6GOjg568cUXKS0tTbt+/vz5NGbMGNJoNHT58mW64447aN68eQ7/fcwzh5Set2zZ\nQqtWraI///nPRplCTU0NhYeH065du6irq4v++te/UkpKisP/a+aRw1Ue29raqG/fvvTWW29Re3s7\nvfPOO5SUlETt7e3a9f3796c333yTbty4QW1tbXTo0CGz5+6WzH3p0qV055130u9//3uKjo6mF198\nkU6dOkXjxo2j6OhoiomJoWnTplFTU5N2+6SkJPrmm2+IiGjevHlUXFxMpaWlFBYWRunp6bR3716z\nx3711VepuLhYu2zKlCn06quvaksCly9fJplMRs3NzaL7kOpiSUxMpM2bN2u/v/TSS3oXgJA//elP\nNG3aNO33U6dOUUBAALW2thIRl7n/13/9l1XHvXLlCslkMm1JIicnh1atWqVdX1FRQX369LH57zGE\neeaQ0jPP//3f/xllCu+++y5NmjRJ+727u5uCg4O1/0N7YR45XOXx3//+N/Xu3VtvWd++fbUPksWL\nF9OYMWNsOne31bnv2bMHAwYMwKVLl/D888+DiPDCCy/g/PnzOH78OOrr6zF//nxtesMRauvWrcOD\nDz6I5uZmTJ48GU888YTZ4xUWFmLHjh1oaWmBRqNBZWUlCgsLteujo6ORkpKCadOmYc2aNaLBi8zx\n2GOPmQwtmpWVBQDQaDQ4f/681eFDDUON9u/fH4GBgaipqdEu+9///V9ER0cjJycHX375pcnz27Fj\nB3r16oXIyEjtMhKMX+vu7kZDQwOuXbtm099tCeaZw1HPppDJZEYeiUjykLTMI4ezPB49ehQZGRl6\nyzIzM7Xx7auqqpCUlISCggLExsZi3LhxOHLkiNl9ui1zT0xMxOOPPw65XI6goCAMGDAAd911FxQK\nBWJiYvD73/8e27dvN7n96NGjcffdd0Mmk+Ghhx5CdXW12eMFBQXhnnvuwYoVK/D555+jsLAQQUFB\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10a1dd490>"
       ]
      }
     ],
     "prompt_number": 78
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 63
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}